package com.fc.mall.model;

import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;

@Setter
@Getter
public class UmsMemberLevel implements Serializable {
    private Long id;

    /**
     * 等级名称
     *
     * @mbggenerated
     */
    private String name;

    /**
     * 成长值
     *
     * @mbggenerated
     */
    private Integer growthPoint;

    /**
     * 是否为默认等级：0->不是；1->是，新用户默认等级;
     *
     * @mbggenerated
     */
    private Integer defaultStatus;

    /**
     * 免运费标准
     *
     * @mbggenerated
     */
    private BigDecimal freeFreightPoint;

    /**
     * 每次评价获取的成长值
     *
     * @mbggenerated
     */
    private Integer commentGrowthPoint;

    /**
     * 是否有免邮特权
     *
     * @mbggenerated
     */
    private Integer priviledgeFreeFreight;

    /**
     * 是否有签到特权
     *
     * @mbggenerated
     */
    private Integer priviledgeSignIn;

    /**
     * 是否有评论获奖励特权
     *
     * @mbggenerated
     */
    private Integer priviledgeComment;

    /**
     * 是否有专享活动特权
     *
     * @mbggenerated
     */
    private Integer priviledgePromotion;

    /**
     * 是否有会员价格特权
     *
     * @mbggenerated
     */
    private Integer priviledgeMemberPrice;

    /**
     * 是否有生日特权
     *
     * @mbggenerated
     */
    private Integer priviledgeBirthday;

    private String note;

    /**
     * 等级类型 1->会员 2->代理商 3->合伙人
     *
     * @mbggenerated
     */
    private Integer levelType;

    /**
     * 升级到的层级id
     *
     * @mbggenerated
     */
    private Long nextLevelId;

    /**
     * 升级条件：拉新人数
     *
     * @mbggenerated
     */
    private Integer inviteNumber;

    /**
     * 升级条件：所分佣金额，单位分
     *
     * @mbggenerated
     */
    private Integer commissionRebateAmount;

    /**
     * 升级条件选项方式： or->或 and->且
     *
     * @mbggenerated
     */
    private Integer upgradeCondition;

    /**
     * 排序
     *
     * @mbggenerated
     */
    private Integer sort;

    /**
     * 一级分佣
     */
    private Integer commissionFirstRate;

    /**
     * 二级分佣
     */
    private Integer commissionSecondRate;

    /**
     * 是否启用
     */
    private Integer active;

    /**
     * 指定商品ID
     */
    private Long productId;

    /**
     * 指定商品名称
     */
    private String productName;

    /**
     * 自购确认收货数量
     */
    private Integer selfPurchaseNum;

    /**
     * 自购确认收货金额
     */
    private BigDecimal selfPurchaseAmount;

    /**
     * 分佣状态  0->禁用，1->启用'
     */
    private Integer commissionStatus;

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", name=").append(name);
        sb.append(", growthPoint=").append(growthPoint);
        sb.append(", defaultStatus=").append(defaultStatus);
        sb.append(", freeFreightPoint=").append(freeFreightPoint);
        sb.append(", commentGrowthPoint=").append(commentGrowthPoint);
        sb.append(", priviledgeFreeFreight=").append(priviledgeFreeFreight);
        sb.append(", priviledgeSignIn=").append(priviledgeSignIn);
        sb.append(", priviledgeComment=").append(priviledgeComment);
        sb.append(", priviledgePromotion=").append(priviledgePromotion);
        sb.append(", priviledgeMemberPrice=").append(priviledgeMemberPrice);
        sb.append(", priviledgeBirthday=").append(priviledgeBirthday);
        sb.append(", note=").append(note);
        sb.append(", levelType=").append(levelType);
        sb.append(", nextLevelId=").append(nextLevelId);
        sb.append(", inviteNumber=").append(inviteNumber);
        sb.append(", commissionRebateAmount=").append(commissionRebateAmount);
        sb.append(", upgradeCondition=").append(upgradeCondition);
        sb.append(", sort=").append(sort);
        sb.append("]");
        return sb.toString();
    }
}